﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using CROSLAND.BL.BE;
using DECOR.BL.BE;

namespace CROSLAND.DL.DALC
{
    public interface IParametroDALC
    {
        void getDataDDL(ref List<GenericBE> lstAlmacen, ref List<GenericBE> lstAsesores,
            ref List<GenericBE> lstBloEnt, ref List<GenericBE> lstBloFac, ref List<GenericBE> lstCanal,
            ref List<GenericBE> lstCondExp, ref List<GenericBE> lstCondicionPago, ref List<GenericBE> lstGrpCond,
            ref List<GenericBE> lstGrpVend, ref List<GenericBE> lstMotPed, ref List<GenericBE> lstOfVtas,
            ref List<GenericBE> lstOrgVtas, ref List<GenericBE> lstSectores, ref List<GenericBE> lstTipoDoc,
            out DateTime fechaHasta, ref List<GenericBE> lstMotRec, ref List<GenericBE> lstZonaReg,
            ref List<GenericBE> lstGrupoCli, ref List<UbigeoBE> lstUbigeo, ref List<GenericBE> lstCamp, ref List<GenericBE> lstCity,
            ref List<GenericBE> lstColor, ref List<GenericBE> lstDispo, ref List<GenericBE> lstGrpArt, ref List<GenericBE> lstZReg,
            ref List<GenericBE> lstBancoCheque, ref List<GenericBE> ltsBancoDepo, ref List<GenericBE> lstProcesadora, ref List<LibrosxvstelBE> lstLibrosxvstel, out decimal pIGV);
        
        void get_Param_PFact(ref List<GenericBE> lstDenom, ref List<GenericBE> lstMoneda,
            ref List<GenericBE> lstMotivoBloq, ref List<GenericBE> lstClaseDoc, ref List<GenericBE> lstRFACT,
            ref List<GenericBE> lstSTATU, ref List<GenericBE> lstTFPLU, ref List<GenericBE> lstCPag);

        /**************************************************************************************************/
        int getDecimales();
        decimal getIGV();
        decimal getTipoCambio();
        decimal getTipoCambio(DateTime pFecha); 
        List<GenericBE> getListaZipCode();
        ClienteBE getClienteReniec(string pDNI);

        string getParamValue(string key);
        bool esTipoXY(string pCodigo, string pConfigKey);
        List<GenericBE> getDocVtaCot();
        List<GenericBE> cmbCampana(List<string> lstLote);
        List<GenericBE> obtenerTipoDocFactura(string idTabla);

        List<GenericBE> cmbTipodocFac();
        /// <summary>
        /// Selecciona el impuesto(IGV, ISC, etc.)
        /// </summary>
        /// <param name="claseCondicion">Clase de Condición (KSCHL).</param>
        /// <param name="clasif_cliente">Clasificacion fiscal del cliente.</param>
        /// <param name="clasif_material">Clasificacion fiscal del material.</param>
        /// <returns></returns>
        decimal getImpuesto(string claseCondicion, string clasif_cliente, string clasif_material);

        void getFolioClaseDocumentoPedFac(string numDoc, out string folio, out string claseDocumento, out string tipo);


         void getDatosUbicación(out  List<GenericBE> lstReg, out List<PoblacionBE> lstPob);
    }
}
